#include <iostream>
#include <vector>

using namespace std;

#ifndef CONFIG_H_
#define CONFIG_H_

class Config {
	Config(int shield, vector<string> arguments) : shield(shield), arguments(arguments){}
	Config(const Config &);
	Config& operator=(const Config&);
	ofstream ofile;
	ifstream ifile;
	string name;
	int shield;
	bool was_created();
	vector<string> config_list;
	void edit();
	vector<string> arguments;
	void writeconfig();
	void shieldopt(int shieldopt);
public:
	virtual ~Config() {}
	void create_config();

	vector<string> getConfigList() const {
		return config_list;
	}
	string getName() const {
		return name;
	}
	void setName(string name) {
		this->name = name;
	}
	static Config& getInstance(int shield, vector<string> arguments){
		static Config instance(shield, arguments);
		return instance;
	}
};

#endif /* CONFIG_H_ */
